home *** CD-ROM | disk | FTP | other *** search
- {
- This file is part of the Free Pascal run time library.
-
- A file in Amiga system run time library.
- Copyright (c) 1998-2000 by Nils Sjoholm
- member of the Amiga RTL development team.
-
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
- {
- History:
- Added overlay functions for Pchar->Strings, functions
- and procedures.
-
- 14 Jul 2000.
- nils.sjoholm@mailbox.swipnet.se
- }
- unit icon;
-
- INTERFACE
-
- {$I amigaoverlays.inc}
-
- uses exec, workbench;
-
-
- Const
-
- ICONNAME : PChar = 'icon.library';
-
- VAR IconBase : pLibrary;
-
- FUNCTION AddFreeList(freelist : pFreeList; mem : POINTER; size : ULONG) : BOOLEAN;
- FUNCTION BumpRevision(newname : pCHAR; oldname : pCHAR) : pCHAR;
- FUNCTION DeleteDiskObject(name : pCHAR) : BOOLEAN;
- FUNCTION FindToolType(toolTypeArray : POINTER; typeName : pCHAR) : pCHAR;
- PROCEDURE FreeDiskObject(diskobj : pDiskObject);
- PROCEDURE FreeFreeList(freelist : pFreeList);
- FUNCTION GetDefDiskObject(typ : LONGINT) : pDiskObject;
- FUNCTION GetDiskObject(name : pCHAR) : pDiskObject;
- FUNCTION GetDiskObjectNew(name : pCHAR) : pDiskObject;
- FUNCTION MatchToolValue(typeString : pCHAR; value : pCHAR) : BOOLEAN;
- FUNCTION PutDefDiskObject(diskObject : pDiskObject) : BOOLEAN;
- FUNCTION PutDiskObject(name : pCHAR; diskobj : pDiskObject) : BOOLEAN;
-
- {$ifdef amiga_overlays}
-
- FUNCTION BumpRevision(newname : string; oldname : pCHAR) : pCHAR;
- FUNCTION BumpRevision(newname : pCHar; oldname : string) : pCHAR;
- FUNCTION BumpRevision(newname : string; oldname : string) : pCHAR;
- FUNCTION DeleteDiskObject(name : string) : BOOLEAN;
- FUNCTION FindToolType(toolTypeArray : POINTER; typeName : string) : pCHAR;
- FUNCTION GetDiskObject(name : string) : pDiskObject;
- FUNCTION GetDiskObjectNew(name : string) : pDiskObject;
- FUNCTION MatchToolValue(typeString : string; value : pCHAR) : BOOLEAN;
- FUNCTION MatchToolValue(typeString : pCHAR; value : string) : BOOLEAN;
- FUNCTION MatchToolValue(typeString : string; value : string) : BOOLEAN;
- FUNCTION PutDiskObject(name : string; diskobj : pDiskObject) : BOOLEAN;
-
- {$endif}
-
- IMPLEMENTATION
-
- {$ifdef amiga_overlays}
- uses pastoc;
- {$endif}
-
- FUNCTION AddFreeList(freelist : pFreeList; mem : POINTER; size : ULONG) : BOOLEAN;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L freelist,A0
- MOVEA.L mem,A1
- MOVEA.L size,A2
- MOVEA.L IconBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
- END;
-
- FUNCTION BumpRevision(newname : pCHAR; oldname : pCHAR) : pCHAR;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L newname,A0
- MOVEA.L oldname,A1
- MOVEA.L IconBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
-
- FUNCTION DeleteDiskObject(name : pCHAR) : BOOLEAN;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L IconBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
- END;
-
- FUNCTION FindToolType(toolTypeArray : POINTER; typeName : pCHAR) : pCHAR;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L toolTypeArray,A0
- MOVEA.L typeName,A1
- MOVEA.L IconBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
-
- PROCEDURE FreeDiskObject(diskobj : pDiskObject);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L diskobj,A0
- MOVEA.L IconBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
-
- PROCEDURE FreeFreeList(freelist : pFreeList);
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L freelist,A0
- MOVEA.L IconBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- END;
- END;
-
- FUNCTION GetDefDiskObject(typ : LONGINT) : pDiskObject;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L typ,D0
- MOVEA.L IconBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
-
- FUNCTION GetDiskObject(name : pCHAR) : pDiskObject;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L IconBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
-
- FUNCTION GetDiskObjectNew(name : pCHAR) : pDiskObject;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L IconBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
- END;
-
- FUNCTION MatchToolValue(typeString : pCHAR; value : pCHAR) : BOOLEAN;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L typeString,A0
- MOVEA.L value,A1
- MOVEA.L IconBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
- END;
-
- FUNCTION PutDefDiskObject(diskObject : pDiskObject) : BOOLEAN;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L diskObject,A0
- MOVEA.L IconBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
- END;
-
- FUNCTION PutDiskObject(name : pCHAR; diskobj : pDiskObject) : BOOLEAN;
- BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L diskobj,A1
- MOVEA.L IconBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
- END;
-
- {$ifdef amiga_overlays}
-
- FUNCTION BumpRevision(newname : string; oldname : pCHAR) : pCHAR;
- begin
- BumpRevision := BumpRevision(pas2c(newname),oldname);
- end;
-
- FUNCTION BumpRevision(newname : pCHar; oldname : string) : pCHAR;
- begin
- BumpRevision := BumpRevision(newname,pas2c(oldname));
- end;
-
- FUNCTION BumpRevision(newname : string; oldname : string) : pCHAR;
- begin
- BumpRevision := BumpRevision(pas2c(newname),pas2c(oldname));
- end;
-
- FUNCTION DeleteDiskObject(name : string) : BOOLEAN;
- begin
- DeleteDiskObject := DeleteDiskObject(pas2c(name));
- end;
-
- FUNCTION FindToolType(toolTypeArray : POINTER; typeName : string) : pCHAR;
- begin
- FindToolType := FindToolType(toolTypeArray,pas2c(typeName));
- end;
-
- FUNCTION GetDiskObject(name : string) : pDiskObject;
- begin
- GetDiskObject := GetDiskObject(pas2c(name));
- end;
-
- FUNCTION GetDiskObjectNew(name : string) : pDiskObject;
- begin
- GetDiskObjectNew := GetDiskObjectNew(pas2c(name));
- end;
-
- FUNCTION MatchToolValue(typeString : string; value : pCHAR) : BOOLEAN;
- begin
- MatchToolValue := MatchToolValue(pas2c(typeString),value);
- end;
-
- FUNCTION MatchToolValue(typeString : pCHAR; value : string) : BOOLEAN;
- begin
- MatchToolValue := MatchToolValue(typeString,pas2c(value));
- end;
-
- FUNCTION MatchToolValue(typeString : string; value : string) : BOOLEAN;
- begin
- MatchToolValue := MatchToolValue(pas2c(typeString),pas2c(value));
- end;
-
- FUNCTION PutDiskObject(name : string; diskobj : pDiskObject) : BOOLEAN;
- begin
- PutDiskObject := PutDiskObject(pas2c(name),diskobj);
- end;
-
-
- {$endif}
-
- END. (* UNIT ICON *)
-
-
-
-